// 引入组件
import ConfirmBox from "./ConfirmBox.vue";
// 引入vue
import Vue from "vue";

const ConfirmConstructor = Vue.extend(ConfirmBox);
// 这里面要处理逻辑得话自行加上就可
const Confirm = (obj) => {
  return new Promise((resolve, reject) => {
    // 定义取消和确定的两个函数体
    // 取消
    let cancelCallBack = () => {
      reject();
      // 删除组件
      document.body.removeChild(msg.$el);
    };
    // 确定
    let confirmCallBack = () => {
      resolve();
      // 删除组件
      document.body.removeChild(msg.$el);
    };
    let newObj = { ...obj, cancelCallBack, confirmCallBack };
    //这里data就是组件里面得data，如果没传就会使用MessageBox.vue里得data
    const msg = new ConfirmConstructor({ data: newObj });
    msg.$mount();
    //添加组件
    document.body.appendChild(msg.$el);
  });
};

export default Confirm;
